package com.potenza.product.domain;

import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 博天金融贷款产品对象 b_finance_product
 * 
 * @author ruoyi
 * @date 2022-12-14
 */
public class BFinanceProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 产品种类 */
    @Excel(name = "产品种类")
    private Long productVariety;

    /** 期数 */
    @Excel(name = "期数")
    private Long numberLoan;

    /** 利率（1年利率，2月利率，3日利率） */
    @Excel(name = "利率", readConverterExp = "1=年利率，2月利率，3日利率")
    private BigDecimal rate;

    /** 手续费（1%） */
    @Excel(name = "手续费", readConverterExp = "1=%")
    private BigDecimal premium;

    /** 最小额度 */
    @Excel(name = "最小额度")
    private Long minimumAmount;

    /** 最大额度 */
    @Excel(name = "最大额度")
    private Long maxmumAmount;

    /** 是否支持循环借贷(1支持,2不支持) */
    @Excel(name = "是否支持循环借贷(1支持,2不支持)")
    private Long revolvingLending;

    /** 逾期还款（罚息  30-50%），按日息计算 */
    @Excel(name = "逾期还款", readConverterExp = "罚=息,3=0-50%")
    private BigDecimal lateRepayment;

    /** 允许提前还款(1允许,2不允许) */
    @Excel(name = "允许提前还款(1允许,2不允许)")
    private Long earlyRepayment;

    /** 提前还款违约金比例 */
    @Excel(name = "提前还款违约金比例")
    private BigDecimal earlyRepaymentPercentage;

    /** 还款方式（1等额本金，2等额本息） */
    @Excel(name = "还款方式", readConverterExp = "1=等额本金，2等额本息")
    private Long repaymentMethod;

    /** 上架状态(1下架2上架) */
    @Excel(name = "上架状态(1下架2上架)")
    private Long shelvesStatus;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }
    public void setProductVariety(Long productVariety) 
    {
        this.productVariety = productVariety;
    }

    public Long getProductVariety() 
    {
        return productVariety;
    }
    public void setNumberLoan(Long numberLoan) 
    {
        this.numberLoan = numberLoan;
    }

    public Long getNumberLoan() 
    {
        return numberLoan;
    }
    public void setRate(BigDecimal rate) 
    {
        this.rate = rate;
    }

    public BigDecimal getRate() 
    {
        return rate;
    }
    public void setPremium(BigDecimal premium) 
    {
        this.premium = premium;
    }

    public BigDecimal getPremium() 
    {
        return premium;
    }
    public void setMinimumAmount(Long minimumAmount) 
    {
        this.minimumAmount = minimumAmount;
    }

    public Long getMinimumAmount() 
    {
        return minimumAmount;
    }
    public void setMaxmumAmount(Long maxmumAmount) 
    {
        this.maxmumAmount = maxmumAmount;
    }

    public Long getMaxmumAmount() 
    {
        return maxmumAmount;
    }
    public void setRevolvingLending(Long revolvingLending) 
    {
        this.revolvingLending = revolvingLending;
    }

    public Long getRevolvingLending() 
    {
        return revolvingLending;
    }
    public void setLateRepayment(BigDecimal lateRepayment) 
    {
        this.lateRepayment = lateRepayment;
    }

    public BigDecimal getLateRepayment() 
    {
        return lateRepayment;
    }
    public void setEarlyRepayment(Long earlyRepayment) 
    {
        this.earlyRepayment = earlyRepayment;
    }

    public Long getEarlyRepayment() 
    {
        return earlyRepayment;
    }
    public void setEarlyRepaymentPercentage(BigDecimal earlyRepaymentPercentage) 
    {
        this.earlyRepaymentPercentage = earlyRepaymentPercentage;
    }

    public BigDecimal getEarlyRepaymentPercentage() 
    {
        return earlyRepaymentPercentage;
    }
    public void setRepaymentMethod(Long repaymentMethod) 
    {
        this.repaymentMethod = repaymentMethod;
    }

    public Long getRepaymentMethod() 
    {
        return repaymentMethod;
    }
    public void setShelvesStatus(Long shelvesStatus) 
    {
        this.shelvesStatus = shelvesStatus;
    }

    public Long getShelvesStatus() 
    {
        return shelvesStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("productName", getProductName())
            .append("productVariety", getProductVariety())
            .append("numberLoan", getNumberLoan())
            .append("rate", getRate())
            .append("premium", getPremium())
            .append("minimumAmount", getMinimumAmount())
            .append("maxmumAmount", getMaxmumAmount())
            .append("revolvingLending", getRevolvingLending())
            .append("lateRepayment", getLateRepayment())
            .append("earlyRepayment", getEarlyRepayment())
            .append("earlyRepaymentPercentage", getEarlyRepaymentPercentage())
            .append("repaymentMethod", getRepaymentMethod())
            .append("shelvesStatus", getShelvesStatus())
            .toString();
    }
}
